// 第一题

// 怎么跳出循环

let arr = [{
        name: '小明',
        age: 18,
        fluts: ['香蕉', '菠萝', '水蜜桃']
    },
    {
        name: '小红',
        age: 28,
        fluts: ['荔枝', '菠萝', '西瓜']
    },
    {
        name: '小亮',
        age: 11,
        fluts: ['火龙果', '榴莲']
    },
    {
        name: '小栗',
        age: 33,
        fluts: ['李子', '榴莲', '樱桃']
    }
];


// 1、contine是结束当前循环下的逻辑,进入下一个循环逻辑, 不会结束并且跳出循环进程
// for(let i =0; i< arr.length; i++) {
//     let fluts = arr[i].fluts;
//     for(let j =0; j < fluts.length; j++) {
//         if (fluts[j] === '菠萝') continue;
//         console.log('姓名:', arr[i].name, '--喜欢:', fluts[j])
//     }
// }



// 2、throw new Error()结束并且跳出循环进程 会使整个循环结束, 但是同时也会是程序终止
// for(let i =0; i< arr.length; i++) {
//     let fluts = arr[i].fluts;
//     for(let j =0; j < fluts.length; j++) {
//         if (fluts[j] === '菠萝') {
//             throw new Error('菠萝')
//         };
//         console.log('姓名:', arr[i].name, '--喜欢:', fluts[j])
//     }
// }
// console.log('new Error 会使该语句不能执行')



// 3、循环命名和break终止 会使对应的循环跳出当不会是程序终止
loop1:
for(let i =0; i< arr.length; i++) {
    let fluts = arr[i].fluts;
    loop2:
    for(let j =0; j < fluts.length; j++) {
        if (fluts[j] === '菠萝') {
            break loop1;
        };
        console.log('姓名:', arr[i].name, '--喜欢:', fluts[j])
    }
}
console.log('loop2会使该语句能执行到')